// $ANTLR 3.0.1 /home/tinia/tl/repositorio/tptl/GeneradorTabla/gramaticaANTLR/Gramatica.g 2008-01-14 19:54:36

package gramaticaANTLR;


import org.antlr.runtime.CharStream;
import org.antlr.runtime.EarlyExitException;
import org.antlr.runtime.Lexer;
import org.antlr.runtime.MismatchedSetException;
import org.antlr.runtime.NoViableAltException;
import org.antlr.runtime.RecognitionException;
import org.antlr.runtime.Token;

public class GramaticaLexer extends Lexer {
    public static final int WS=10;
    public static final int LLAVEIZQ=4;
    public static final int TERMINAL=8;
    public static final int LLAVEDER=5;
    public static final int FINPROD=7;
    public static final int FLECHA=6;
    public static final int Tokens=11;
    public static final int EOF=-1;
    public static final int NOTERMINAL=9;

    	public Token nextToken() {
    		while (true) {
    			this.token = null;
    			this.channel = Token.DEFAULT_CHANNEL;
    			this.tokenStartCharIndex = input.index();
    			this.tokenStartCharPositionInLine = input.getCharPositionInLine();
    			this.tokenStartLine = input.getLine();
    			this.text = null;
    			if ( input.LA(1)==CharStream.EOF ) {
    				return Token.EOF_TOKEN;
    			}
    			try {
    				mTokens();
    				if ( this.token==null ) {
    					emit();
    				}
    				else if ( this.token==Token.SKIP_TOKEN ) {
    					continue;
    				}
    				return this.token;
    			}
    			catch (RecognitionException re) {
    				reportError(re);
    				throw new RuntimeException("Bailing out!"); // or throw Error
    			}
    		}
    	}

    public GramaticaLexer() {;} 
    public GramaticaLexer(CharStream input) {
        super(input);
    }
    public String getGrammarFileName() { return "/home/tinia/tl/repositorio/tptl/GeneradorTabla/gramaticaANTLR/Gramatica.g"; }

    // $ANTLR start LLAVEIZQ
    public final void mLLAVEIZQ() throws RecognitionException {
        try {
            int _type = LLAVEIZQ;
            // /home/tinia/tl/repositorio/tptl/GeneradorTabla/gramaticaANTLR/Gramatica.g:35:10: ( '{' )
            // /home/tinia/tl/repositorio/tptl/GeneradorTabla/gramaticaANTLR/Gramatica.g:35:12: '{'
            {
            match('{'); 

            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end LLAVEIZQ

    // $ANTLR start LLAVEDER
    public final void mLLAVEDER() throws RecognitionException {
        try {
            int _type = LLAVEDER;
            // /home/tinia/tl/repositorio/tptl/GeneradorTabla/gramaticaANTLR/Gramatica.g:36:10: ( '}' )
            // /home/tinia/tl/repositorio/tptl/GeneradorTabla/gramaticaANTLR/Gramatica.g:36:12: '}'
            {
            match('}'); 

            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end LLAVEDER

    // $ANTLR start FLECHA
    public final void mFLECHA() throws RecognitionException {
        try {
            int _type = FLECHA;
            // /home/tinia/tl/repositorio/tptl/GeneradorTabla/gramaticaANTLR/Gramatica.g:37:8: ( ':' )
            // /home/tinia/tl/repositorio/tptl/GeneradorTabla/gramaticaANTLR/Gramatica.g:37:10: ':'
            {
            match(':'); 

            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end FLECHA

    // $ANTLR start FINPROD
    public final void mFINPROD() throws RecognitionException {
        try {
            int _type = FINPROD;
            // /home/tinia/tl/repositorio/tptl/GeneradorTabla/gramaticaANTLR/Gramatica.g:38:9: ( ';' )
            // /home/tinia/tl/repositorio/tptl/GeneradorTabla/gramaticaANTLR/Gramatica.g:38:11: ';'
            {
            match(';'); 

            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end FINPROD

    // $ANTLR start TERMINAL
    public final void mTERMINAL() throws RecognitionException {
        try {
            int _type = TERMINAL;
            // /home/tinia/tl/repositorio/tptl/GeneradorTabla/gramaticaANTLR/Gramatica.g:203:2: ( 'a' .. 'z' )
            // /home/tinia/tl/repositorio/tptl/GeneradorTabla/gramaticaANTLR/Gramatica.g:203:4: 'a' .. 'z'
            {
            matchRange('a','z'); 

            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end TERMINAL

    // $ANTLR start NOTERMINAL
    public final void mNOTERMINAL() throws RecognitionException {
        try {
            int _type = NOTERMINAL;
            // /home/tinia/tl/repositorio/tptl/GeneradorTabla/gramaticaANTLR/Gramatica.g:206:2: ( 'A' .. 'Z' )
            // /home/tinia/tl/repositorio/tptl/GeneradorTabla/gramaticaANTLR/Gramatica.g:206:4: 'A' .. 'Z'
            {
            matchRange('A','Z'); 

            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end NOTERMINAL

    // $ANTLR start WS
    public final void mWS() throws RecognitionException {
        try {
            int _type = WS;
            // /home/tinia/tl/repositorio/tptl/GeneradorTabla/gramaticaANTLR/Gramatica.g:208:3: ( ( ' ' | '\\n' | '\\r' | '\\t' )+ )
            // /home/tinia/tl/repositorio/tptl/GeneradorTabla/gramaticaANTLR/Gramatica.g:208:5: ( ' ' | '\\n' | '\\r' | '\\t' )+
            {
            // /home/tinia/tl/repositorio/tptl/GeneradorTabla/gramaticaANTLR/Gramatica.g:208:5: ( ' ' | '\\n' | '\\r' | '\\t' )+
            int cnt1=0;
            loop1:
            do {
                int alt1=2;
                int LA1_0 = input.LA(1);

                if ( ((LA1_0>='\t' && LA1_0<='\n')||LA1_0=='\r'||LA1_0==' ') ) {
                    alt1=1;
                }


                switch (alt1) {
            	case 1 :
            	    // /home/tinia/tl/repositorio/tptl/GeneradorTabla/gramaticaANTLR/Gramatica.g:
            	    {
            	    if ( (input.LA(1)>='\t' && input.LA(1)<='\n')||input.LA(1)=='\r'||input.LA(1)==' ' ) {
            	        input.consume();

            	    }
            	    else {
            	        MismatchedSetException mse =
            	            new MismatchedSetException(null,input);
            	        recover(mse);    throw mse;
            	    }


            	    }
            	    break;

            	default :
            	    if ( cnt1 >= 1 ) break loop1;
                        EarlyExitException eee =
                            new EarlyExitException(1, input);
                        throw eee;
                }
                cnt1++;
            } while (true);

            channel=HIDDEN;

            }

            this.type = _type;
        }
        finally {
        }
    }
    // $ANTLR end WS

    public void mTokens() throws RecognitionException {
        // /home/tinia/tl/repositorio/tptl/GeneradorTabla/gramaticaANTLR/Gramatica.g:1:8: ( LLAVEIZQ | LLAVEDER | FLECHA | FINPROD | TERMINAL | NOTERMINAL | WS )
        int alt2=7;
        switch ( input.LA(1) ) {
        case '{':
            {
            alt2=1;
            }
            break;
        case '}':
            {
            alt2=2;
            }
            break;
        case ':':
            {
            alt2=3;
            }
            break;
        case ';':
            {
            alt2=4;
            }
            break;
        case 'a':
        case 'b':
        case 'c':
        case 'd':
        case 'e':
        case 'f':
        case 'g':
        case 'h':
        case 'i':
        case 'j':
        case 'k':
        case 'l':
        case 'm':
        case 'n':
        case 'o':
        case 'p':
        case 'q':
        case 'r':
        case 's':
        case 't':
        case 'u':
        case 'v':
        case 'w':
        case 'x':
        case 'y':
        case 'z':
            {
            alt2=5;
            }
            break;
        case 'A':
        case 'B':
        case 'C':
        case 'D':
        case 'E':
        case 'F':
        case 'G':
        case 'H':
        case 'I':
        case 'J':
        case 'K':
        case 'L':
        case 'M':
        case 'N':
        case 'O':
        case 'P':
        case 'Q':
        case 'R':
        case 'S':
        case 'T':
        case 'U':
        case 'V':
        case 'W':
        case 'X':
        case 'Y':
        case 'Z':
            {
            alt2=6;
            }
            break;
        case '\t':
        case '\n':
        case '\r':
        case ' ':
            {
            alt2=7;
            }
            break;
        default:
            NoViableAltException nvae =
                new NoViableAltException("1:1: Tokens : ( LLAVEIZQ | LLAVEDER | FLECHA | FINPROD | TERMINAL | NOTERMINAL | WS );", 2, 0, input);

            throw nvae;
        }

        switch (alt2) {
            case 1 :
                // /home/tinia/tl/repositorio/tptl/GeneradorTabla/gramaticaANTLR/Gramatica.g:1:10: LLAVEIZQ
                {
                mLLAVEIZQ(); 

                }
                break;
            case 2 :
                // /home/tinia/tl/repositorio/tptl/GeneradorTabla/gramaticaANTLR/Gramatica.g:1:19: LLAVEDER
                {
                mLLAVEDER(); 

                }
                break;
            case 3 :
                // /home/tinia/tl/repositorio/tptl/GeneradorTabla/gramaticaANTLR/Gramatica.g:1:28: FLECHA
                {
                mFLECHA(); 

                }
                break;
            case 4 :
                // /home/tinia/tl/repositorio/tptl/GeneradorTabla/gramaticaANTLR/Gramatica.g:1:35: FINPROD
                {
                mFINPROD(); 

                }
                break;
            case 5 :
                // /home/tinia/tl/repositorio/tptl/GeneradorTabla/gramaticaANTLR/Gramatica.g:1:43: TERMINAL
                {
                mTERMINAL(); 

                }
                break;
            case 6 :
                // /home/tinia/tl/repositorio/tptl/GeneradorTabla/gramaticaANTLR/Gramatica.g:1:52: NOTERMINAL
                {
                mNOTERMINAL(); 

                }
                break;
            case 7 :
                // /home/tinia/tl/repositorio/tptl/GeneradorTabla/gramaticaANTLR/Gramatica.g:1:63: WS
                {
                mWS(); 

                }
                break;

        }

    }


 

}